A typical web page, also called a web document, consists of a base markup page (base page), for example HTML page, and multiple supporting web resources or objects. Resources can be of different types, such as scripts (e.g. JavaScript), data resources (e.g. XML or other text-based data), style sheets, images and other page components. There are many image formats such as GIF, PNG, and JPEG. Each resource has a web address represented in the form of Uniform Resource Locator (URL). A typical web application operates via Internet, intranet or other computer network that includes multiple interconnected devices located on network nodes (nodes), and has at least one server and client. The server serves web pages in response to client requests, and the client presents them in a web browser.
Management of loading web pages continues to be an important challenge for many web systems such as e-commerce and content sites, Software as a Service (SaaS) and mobile applications, and other web sites and web systems collectively called here “web applications”. When browsing on the Internet, users typically expect almost immediate response from the websites. Maintaining adequate response time of a web page remains an important factor impacting web application usability and end-user experience. In web applications, even a few second delay in a web page response may be significant. In web business applications, delay in web page response may lead to loss of users' productivity and even missing some business goals. In e-commerce web sites, delay in web page response creates a less pleasant shopping experience and increases unrealized online purchases. In content web sites, slow web page response causes diminished visitors' loyalty and traffic reduction.
As discussed above, web pages are usually composed of tens or even hundreds of the different resources such as images, style sheets, JavaScript, etc. For each of these resources, a network connection, i.e. request/response, is established between a client and a web server. This connection generally uses transmission control protocol (TCP) to create a reliable path through the network between the client and the web server. Hence, for every request/response from the browser to the server for a resource or a file, a new TCP connection should be established. This operation is expensive for network hardware (e.g. switches and routers) and takes relatively long time. In fact, for files generally small in size, it may take longer to create a connection between the client and the server then to transfer the data and/or metadata in the file. Also, for every TCP connection, there is a Hypertext Transfer Protocol (HTTP) request and response. Thus, in addition to a slow web page response, the connection also requires bandwidth downloading webpage resources as the meta-data (“HTTP headers”) needs to be transferred for every file.